<?php


namespace App\Models\Traits;


trait Btn
{
    private function checkAuth(string $route_name){
        # 判断他请求的路由是不是里面有没有api有的话就不用往下执行
        if(!stristr(request()->url(),"/api/")){
            # 判断是否是超级管理员，如果是就不要限制
            if(request()->username != 'admin' && !in_array($route_name,request()->nodeList)){
                # 返回false
                return false;
            }
        }
        # 如果是超级管理员返回true
        return true;
    }
    # 添加按钮
    public function addBtn(string $route_name,string $name ,$params = []):string {
        # 判断他是否传入进来的是超级管理员，如果是返回空的直接显示
        if(!$this->checkAuth($route_name)) return "";
        # 如果不是那就返回路径请求
        return "<a href='" . route($route_name,$params) . "' class='btn btn-primary radius'>
                    <i class='Hui-iconfont'>&#xe600;</i> ".$name."</a>";
    }
    # 修改
    public function editBtn(string $route_name,string $name ,$params = []):string {
        # 判断他是否传入进来的是超级管理员，如果是返回空的直接显示
        if(!$this->checkAuth($route_name)) return "";
        # 如果不是那就返回路径请求
        return "<a href='".route($route_name,$params)."' class='label label-primary editalert'>".$name."</a>";
    }
    # 删除
    public function deleteBtn(string $route_name,string $name ,$params = []):string {
        # 判断他是否传入进来的是超级管理员，如果是返回空的直接显示
        if(!$this->checkAuth($route_name)) return "";
        # 如果不是那就返回路径请求
        return "<a href='".route($route_name,$params)."' class='label label-danger del'>".$name."</a>";
    }
    # 还原
    public function restoreBtn(string $route_name,string $name ,$params = []):string {
        # 判断他是否传入进来的是超级管理员，如果是返回空的直接显示
        if(!$this->checkAuth($route_name)) return "";
        # 如果不是那就返回路径请求
        return "<a href='".route($route_name,$params)."' class='label label-danger'>".$name."</a>";
    }
    # 软删除列表
    public function softDeletesBtn(string $route_name,string $name,$params =[]):string {
        # 判断他是否传入进来的是超级管理员，如果是返回空的直接显示
        if(!$this->checkAuth($route_name)) return "";
        # 如果不是那就返回路径请求
        return "<a href='".route($route_name,$params)."' class='btn btn-primary'>".$name."</a>";
    }
    # 删除全部
    public function deleteAllBtn(string $route_name,string $name,$params =[]):string {
        # 判断他是否传入进来的是超级管理员，如果是返回空的直接显示
        if(!$this->checkAuth($route_name)) return "";
        # 如果不是那就返回路径请求
        return "<a onclick=\"datadel()\" class=\"btn btn-danger radius\">
                    <i class=\"Hui-iconfont\">&#xe6e2;</i> 批量删除
                </a>";
    }
    # 分配权限
    public function authBtn(string $route_name,string $name,$params = []):string {
        # 判断他是否传入进来的是超级管理员，如果是返回空的直接显示
        if(!$this->checkAuth($route_name)) return "";
        # 如果不是那就返回路径请求
        return "<a href='".route($route_name,$params)."' class='label label-primary'>".$name."</a>";
    }
    # 查看
    public function showBtn(string $route_name,string $name,$params = []):string {
        # 判断他是否传入进来的是超级管理员，如果是返回空的直接显示
        if(!$this->checkAuth($route_name)) return "";
        # 如果不是那就返回路径请求
        return "<a href='".route($route_name,$params)."' class='label label-success'>".$name."</a>";
    }
}
